package com.sbr.seb.wicket.menu.tdb;

import org.apache.wicket.PageParameters;
import org.apache.wicket.spring.injection.annot.SpringBean;

import com.sbr.seb.entity.composants.Category;
import com.sbr.seb.planning.dao.CategoryDao;
import com.sbr.seb.wicket.element.MenuItem;
import com.sbr.seb.wicket.page.BaseSideMenu;
import com.sbr.seb.wicket.page.tdb.DefaultTableauDeBordPage;
import com.sbr.seb.wicket.page.tdb.TableauDeBordBasePage;

public class TableauDeBordSideMenu extends BaseSideMenu {

	private static final long serialVersionUID = 1L;
	@SpringBean
	private CategoryDao categoryDao;

	public TableauDeBordSideMenu(String id) {
		super(id);

		MenuItem applicationsMenuItem = new MenuItem("Applications", DefaultTableauDeBordPage.class);
		applicationsMenuItem.addSousMenuItem(new MenuItem("Versions", DefaultTableauDeBordPage.class));
		sideMenuItemList.add(applicationsMenuItem);

		MenuItem integrationSI2MenuItem = new MenuItem("Intégration SI2", DefaultTableauDeBordPage.class);
		integrationSI2MenuItem.addSousMenuItem(new MenuItem("Catégories", DefaultTableauDeBordPage.class));
		integrationSI2MenuItem.addSousMenuItem(new MenuItem("Items", DefaultTableauDeBordPage.class));
		sideMenuItemList.add(integrationSI2MenuItem);

		MenuItem exploitationMenuItem = new MenuItem("Exploitation", DefaultTableauDeBordPage.class);
		exploitationMenuItem.addSousMenuItem(new MenuItem("Catégories", DefaultTableauDeBordPage.class));
		exploitationMenuItem.addSousMenuItem(new MenuItem("Items", DefaultTableauDeBordPage.class));
		sideMenuItemList.add(exploitationMenuItem);

		MenuItem categoryMenuItem = null;
		for (Category category : categoryDao.findUpperCategory()) {
			categoryMenuItem = new MenuItem(category.getName(), DefaultTableauDeBordPage.class);
			for (Category underCategory : category.getUnderCategoryList()) {
				PageParameters myParameters = new PageParameters();
				myParameters.put("categoryId", underCategory.getId());
				
				categoryMenuItem.addSousMenuItem(new MenuItem(underCategory.getName(), TableauDeBordBasePage.class, myParameters));
			}
			sideMenuItemList.add(categoryMenuItem);
		}
	}

}
